Method and Apparatus for Remote Service of an Appliance

ABSTRACT

An appliance network has a service key accessory to facilitate remote diagnosis and service of an appliance.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of International ApplicationNo. PCT/US2006/022503, filed Jun. 9, 2006, and a continuation-in-part ofInternational Patent Application No. PCT/US2006/022420, filed Jun. 8,2006, both of which claim the benefit of U.S. Provisional PatentApplication No. 60/595,148, filed Jun. 9, 2005.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to methods and apparatus for remotely servicing anappliance.

2. Description of the Related Art

Household appliances typically comprise one or more componentsresponsible for the electromechanical operations of the appliance. Forexample, an oven can include an appliance management component having aprinted circuit board (PCB) with memory, as well as a user-interfacecomponent, such as a control panel or keypad, for a user to issuecommands to the oven. As another example, a washing machine can includean appliance management component, a user-interface component, and amotor control component that controls a motor of the washing machine.

Typically, discrete circuits couple the internal components of anappliance, with each discrete circuit responsible for individualcommunication between related components. The circuits communicate witheach other over an internal network that traditionally is implemented byhard-wired ribbon cables or other connectors or harnesses between thecomponents. The hard-wired connectors form a closed system or networkthat is difficult or not possible to modify. For example, because theclosed network relies on hard-coded or hard-wired network solutions, itis not practical to couple additional external components or additionalinternal components to the appliance to expand the capability orfunction of the appliance. The closed network cannot easily be adaptedfor communication with the additional external/internal components andtherefore limits the potential of the appliance.

SUMMARY OF THE INVENTION

According to the invention, an appliance, configured to perform a cycleof operation to complete a physical domestic operation on an article,has a communication network with a plurality of interconnected nodesconfigured to communicate across the communication network, and aplurality of components, each component associated with at least one ofthe plurality of nodes. The appliance also has a software architecturewith a plurality of software elements and is configured to generate aplurality of messages on the communication network. With the applianceis a service accessory disposed and configured to communicate with thesoftware architecture for monitoring at least one of the plurality ofcomponents. At least one of the software elements resides in each of thecomponents and is configured to enable transmission of at least one ofthe plurality of messages among the components and between the accessoryand the components.

Preferably, the service accessory is configured to communicate with aremote service center so that the remote service center can be placed incommunication with the service accessory to diagnose a componentfailure. The remote service center can assume control of at least one ofcomponents by way of the software architecture. Either the softwarearchitecture or the service accessory can store data representative of afailure of a component, in which case the service accessory isconfigured to communicate with a remote service center so that theremote service center can be placed in communication with the serviceaccessory to retrieve the data. As well, the service accessory can beconfigured to communicate with an automated service system thatretrieves the data from the service accessory.

In one aspect, the service accessory is a coupling mechanism forconnecting the appliance to one of a computing device, a cellular phone,a personal computer, and personal digital assistant. The serviceaccessory can be a removable service module configured to store datarepresentative of a failure of a component, and to connect to and uploadthe data to a remote client. In such case, the service module ispreferably configured to store and communicate to the softwarearchitecture testing scripts related to the component failure.

The service key can include a central collector configured tocommunicate with the plurality of components and monitor and recordoperational data associated with the plurality of components.Preferably, the central locator is disposed within the appliance.

The service key can include a black box recorder constructed to survivea catastrophic event. As well, the service key can be interfaced withthe electrical system of the appliance to monitor and record datarelated to power consumption by the plurality of components.

In another aspect, the invention provides a method of remotely servicingthe appliance by calling a remote service center; advising the remoteservice center of malfunction in the appliance; establishingcommunication between the remote service center and the serviceaccessory; downloading data from the service accessory; analyzing thedata to diagnose a component failure; and communicating a response tothe user.

In yet another aspect, the invention contemplates a network including anappliance, configured to perform a cycle of operation to complete aphysical domestic operation on an article, with a communication networkhaving a plurality of interconnected nodes configured to communicateacross the communication network, and a plurality of components, eachcomponent associated with at least one of the plurality of nodes. Thenetwork includes a software architecture having a plurality of softwareelements and configured to generate a plurality of messages on thecommunication network, and a remote service center configured tocommunicate with the software architecture for monitoring at least oneof the plurality of components. At least one of the software elementsresides in each of the components and is configured to enabletransmission of at least one of the plurality of messages among thecomponents and between the remote service center and at least one of thecomponents. Preferably, the remote service center can assume control ofthe at least one of the plurality of components by way of the softwarearchitecture.

The invention also contemplates a service key accessory for an appliancehaving a communication network with a plurality of interconnected nodesconfigured to communicate across the communication network and aplurality of components, each component associated with at least one ofthe plurality of nodes. The service key is characterized by means tocommunicate and exchange data with the communication network of theappliance; and memory for storing data retrieved from the appliance.Further, the service key can include a service logic configured toassume control of the appliance when the service key is in communicationwith the communication network of the appliance, and means tocommunicate with a network external to the appliance.

20. The service key of claim 19 wherein the external network comprisesone of a personal computer, the internet, and a telephone network.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a schematic view of a clock accessory for a communicatingappliance according to one embodiment of the invention, wherein theclock communicates a time to appliances following powering theappliances down and up.

FIG. 2 is a schematic view of a clock accessory for a communicatingappliance according to another embodiment of the invention, wherein theclock functions as an amplifier and/or a wireless access point.

FIG. 3 is a schematic view of a clock accessory for a communicatingappliance according to another embodiment of the invention, wherein theclock comprises a display for communication with a user of thecommunicating appliance.

FIG. 4 is a schematic view of a clock accessory for a communicatingappliance according to another embodiment of the invention, wherein theclock communicates a time to other appliances to synchronize the timeamong the appliances.

FIG. 5 is a schematic view of a clock accessory for a communicatingappliance according to another embodiment of the invention, wherein theclock on one appliance requests a time from a clock on another applianceto synchronize the time among the appliances.

FIG. 6 is a schematic view of a cooking aid accessory in the form of acontrolled stirrer according to one embodiment of the invention for usewith a communicating appliance.

FIG. 7 is a schematic view of a cooking aid accessory in the form of aningredient dispenser according to one embodiment of the invention foruse with a communicating appliance.

FIG. 8 is a schematic view of a cooking aid accessory in the form of asensing cooking vessel according to one embodiment of the invention foruse with a communicating appliance.

FIG. 9 is a schematic view of a cooking aid accessory in the form of aremovable cooking vessel sensor according to one embodiment of theinvention for use with a communicating appliance.

FIG. 10 is a schematic view of an operation cycle component according toone embodiment of the invention for use with a communicating appliance.

FIG. 11 is a schematic view of the operation cycle component of FIG. 10coupled with a main controller of a communicating appliance.

FIG. 12 is a schematic view of a consumable and a consumable readeraccording to one embodiment of the invention for use with acommunicating appliance.

FIG. 13 is a schematic view of a connection assembly according to oneembodiment of the invention for use with a communicating appliance andan energy controller.

FIG. 14 is a schematic view illustrating remotely servicing acommunicating appliance according to one embodiment of the invention.

FIG. 15 is a schematic view illustrating self-servicing a communicatingappliance according to one embodiment of the invention.

FIG. 16 is a schematic view of a network binder according to oneembodiment of the invention for use with a communicating appliance.

FIG. 17 is a schematic view of a remote user interface according to oneembodiment of the invention for use with a communicating appliance.

FIG. 18 is a schematic view of an appliance monitor integrated into acommunicating appliance according to one embodiment of the invention.

FIG. 19 is a schematic view of a remote appliance monitor according toone embodiment of the invention for use with a communicating appliance.

FIG. 20 is a schematic view of a smart cable according to one embodimentof the invention for use with a communicating appliance.

FIG. 21 is a schematic view of a smart wireless connector according toone embodiment of the invention for use with a communicating appliance.

FIG. 22 is a schematic view of a central collector according to oneembodiment of the invention for use with a communicating appliance.

FIG. 23 is a schematic view of a local collector according to oneembodiment of the invention for use with a communicating appliance.

FIG. 24 is a schematic view of a sales demo accessory according to oneembodiment of the invention for use with a communicating appliance.

FIG. 25 is a schematic view of a cellular phone according to oneembodiment of the invention for use with a communicating appliance.

FIG. 26 is a schematic view of an audio communication accessoryaccording to one embodiment of the invention for use with acommunicating appliance.

FIG. 27 is a schematic view of a network of appliances and clientsconnected on multiple networks by couplers.

FIG. 28 is a schematic view of a source of information about resourcesconnected to an appliance through two couplers.

FIG. 29 is a schematic diagram showing the transfer of an operationcycle accessory between two appliances.

FIG. 30 is a schematic diagram showing the communications controllingthe operation of an appliance.

FIG. 31 is a schematic diagram showing the operation of a consumablereader.

FIG. 32 illustrates synchronous data collection by binding messages inan event group.

FIG. 33 illustrates the technique of FIG. 32 to bind command messages.

DESCRIPTION OF EMBODIMENTS OF THE INVENTION

By employing a software architecture that enables facile communicationbetween internal components of an appliance and between an externalcomponent and one or more of the internal components of the appliance,various components and accessories can communicate with the appliance toexpand the capability, functionality, and usability of the appliance.The appliance can be any suitable appliance, such as a householdappliance. Examples of household appliances include, but are not limitedto, clothes washing machines, clothes dryers, ovens, dishwashers,refrigerators, freezers, microwave ovens, trash compactors, andcountertop appliances, such as waffle makers, toasters, blenders,mixers, food processors, coffee makers, and the like.

The appliance can be configured to perform a cycle of operation tocomplete a physical domestic operation on an article. Examples of thephysical domestic operations include a food preparation operation, afood preservation operation, a fluid treatment operation, a cleaningoperation, a personal care operation, a fabric treatment operation, anair treatment operation, and a hard surface treatment operation. The airtreatment operation can comprise, for example, air purification, airhumidification, air dehumidification, air heating, and air cooling. Thefood preparation operation can comprise, for example, food cleaning,food chopping, food mixing, food heating, food peeling, and foodcooling. The food preservation operation can comprise, for example, foodcooling, food freezing, and food storage in a specialized atmosphere.The fluid treatment operation can comprise, for example, fluid heating,fluid boiling, fluid cooling, fluid freezing, fluid mixing, fluidwhipping, fluid dispensing, fluid filtering, and fluid separation. Thecleaning operation can comprise, for example, dishwashing, fabricwashing, fabric treatment, fabric drying, hard surface cleaning, hardsurface treatment, hard surface drying, carpet cleaning, carpettreatment, and carpet drying. The personal care operation can comprise,for example, hair treatment, nail treatment, body massaging, teethcleaning, body cleaning, and shaving.

The internal components of the appliances can include any component thatparticipates in the operation of the appliance. Some of the internalcomponents have a corresponding controller (main controller, motorcontroller, user interface, etc.), which can be a simple microprocessormounted on a printed circuit board, and other components that have nocontroller. The components can comprise one or more devices that arecontrolled by the controller. Typically, the controller components incooperation, either directly or indirectly, through other components,control the operation of all of the components and the associateddevices to implement an operation or cycle for the appliance.

The software architecture can be implemented on and communicated over aninternal communications network on the appliance. The internalcommunications network connects the various internal components of theappliance and can be considered a closed network. One example of theinternal communications network used within the appliance is the WIDEnetwork protocol, created by Whirlpool, Inc., the assignee of thepresent patent application.

The software architecture expands the communication ability of theappliance by effectively creating an open network, hereinafter referredto as “network.” Within the appliance, the software architecture can,but does not have to, reside on each of the components that have acontroller. Those components with the software architecture form anetwork node that can communicate with the other nodes.

The software architecture can perform multiple functions. For example,one function can relate to identifying each of the componentscorresponding to a node on the network, while another function canrelate to identifying capabilities or functions of the identifiedcomponents on the network. Yet another exemplary function is to identifythe status of the components on the network. In this way, the softwarearchitecture can function to inform all of the nodes on the network ofthe presence, capabilities, and status of the other nodes.

The software architecture can comprise multiple modules, each of whichhas different functionality. Various combinations of the modules or allof the modules can reside on each of the components. One module having abasic or core functionality resides on all of the components. In oneanticipated configuration, all of the modules reside at least on themain controller, which establishes the main controller to function as aprimary or main software architecture, with the other nodes functioningin a client relationship to the main software architecture. In such aconfiguration, all of the nodes can communicate through the mainsoftware architecture. The software architecture can be sufficientlyrobust that it can permit configurations without a main softwarearchitecture or with multiple main software architectures. For example,the controllers of the various components can work together to controlthe operation of the appliance without any one of the appliancesfunctioning as a main controller. Regardless of the configuration, anycomponent with the software architecture can function as a client withrespect to the other components.

Because of the software architecture, the internal components of theappliance are not only connected with one another, but the internalcomponents can also be connected to one or more external components or anew internal component through the network. The external componentand/or the new internal component has one, some, or all of the softwarearchitecture modules in resident. As a result, the external componentand/or the new internal component can communicate with the internalcomponents of the appliance and can also communicate with other externalcomponents having the software architecture.

The software architecture can be any suitable software architecture thatenables communication between the internal components of the applianceand the external component and/or the new internal component or betweencomponents external to the appliance. An example of the softwarearchitecture is disclosed in Patent Cooperation Treaty PatentApplication No. PCT/US2006/022420, titled “SOFTWARE ARCHITECTURE SYSTEMAND METHOD FOR COMMUNICATION WITH, AND MANAGEMENT OF, AT LEAST ONECOMPONENT WITHIN A HOUSEHOLD APPLIANCE,” filed Jun. 8, 2006, andincorporated herein by reference in its entirety as if written hereverbatim. A related example is shown in priority document U.S. PatentApplication No. 60/595,148, filed Jun. 9, 2005, also incorporated hereinby reference as if written here verbatim. All of the communicationsbetween components and accessories and/or any combination of componentsand accessories described in this application can be implemented by thesoftware and network structures disclosed in either of theseapplications.

The software architecture disclosed in the aforementioned references canbe implemented by providing one or more of the software elements of thesoftware architecture at least on each of the components to becontrolled and on the accessory. The software architecture is configuredto generate a plurality of messages, with at least one of the softwareelements residing in each of the components and in the accessory andconfigured to enable transmission of at least one of the plurality ofmessages between the components and between the accessory and thecomponents. The messages can be transmitted for bi-directionalcommunication between components and/or components and accessory. Themessages can include command messages that are used to implement aphysical domestic operation cycle of the appliance.

The messages can be generated by a message generator, which can take theform of the software architecture, the accessory, or a component. Onepossible message generator is a user interface.

Descriptions of several examples of components and accessories, hereinafter referred to as “accessory” with it being understood that theaccessory can be considered a component on the network, for use inconjunction with the appliance having the software architecture follow.The accessories can be external to the appliance or internal to theappliance. Each of the accessories is enabled with the softwarearchitecture whereby the accessory establishes a node on the network oris part of an existing node on the network.

One example of the accessory is a clock. In one embodiment, the clock isexternal to the appliance and is an atomic clock. For example, theatomic clock can be a wireless atomic clock that can communicate withone or more of the appliances. An illustration of this embodiment isshown in FIG. 1, where a clock 10 can communicate with a first appliance12 in the form of an oven and a second appliance 14 in the form of amicrowave oven.

The clock can acquire an official time via any suitable method, such asfrom a cellular network, a radio network, or the Internet. The clock canthen transmit the official time to the appliance(s). For example, theclock can automatically transmit the official time, transmit theofficial time based on registered time events (i.e., transmit theofficial time at predetermined intervals to appliances that haveregistered for the time events), or transmit the official time uponrequest from one or more of the appliances.

An example of transmitting the time is shown in FIG. 1. The clock 10communicates with the first and second appliances 12, 14 on the networkand asks for identification of the appliances that have clocks. Thefirst and second appliances 12, 14 both respond by informing the clock10 that the first appliance 12 and the second appliance 14 each have aclock and provide corresponding addresses for the respective clocks. Anevent occurs where the first and second appliances 12, 14 are powereddown (i.e., off) and up (i.e., on) such that the time on the first andsecond appliances 12, 14 is no longer set. The clock 10 then transmitsthe official time to the clocks of each of the first and secondappliances 12, 14, and the clock 10, the first appliance 12, and thesecond appliance 14 all display the same official time.

The clock can also function as an amplifier to boost a signal providedby the appliance to a destination appliance or as a wireless accesspoint that can transmit a signal provided by the appliance to adestination appliance. For example, the appliance can have a radio thatis not sufficiently strong to provide visibility to the destinationappliance but is strong enough to provide visibility to the clock. Theclock can receive the signal from the appliance and re-broadcast thesignal to a destination appliance or to another appliance that cantransmit the signal to the destination appliance, and so on. The clockcan amplify the signal prior to or while re-broadcasting the signal, orthe clock can simply re-broadcast the signal. An example of utilizingthe clock in this manner is illustrated in FIG. 2. The first appliance12 in the form of the oven has visibility to the clock 10 and sends asignal to the clock 10. The clock 10 can optionally amplify the signalbefore or while re-broadcasting the signal to the second, destinationappliance 14 in the form of the microwave oven. In another scenario,where the destination appliance is a third appliance 16 in the form of arefrigerator, the second appliance 14 can send the signal to the thirdappliance 16.

The clock can optionally serve as a protocol bridge. A protocol is astandard procedure for regulating data transmission between devices;however, not all devices necessarily communicate in the same protocol. Abridge effectively translates one protocol into another so that deviceswith different protocols can communicate with one another. The clock,therefore, can function not only as a time-keeping apparatus but also asa bridge between appliances or between the appliance and another device.Thus, the bridge functionality can be incorporated into the clock andthe user does not need to purchase a separate bridge. The amplifier andbridging functions can also be included in any of the other accessoriesdescribed below.

Referring now to FIG. 3, the clock 10 that communicates with theappliance(s) 12, 14, 16, can include a display 18 for communication withthe user. The display 18 can be integrated with a time display or can beseparate from the time display. As examples, the display 18 can be aliquid crystal display (LCD), a plasma display, a digital display, andthe like. The display 18 can communicate to the user a status of theappliance, such as via one or more notification icons. Examples ofappliance status include, but are not limited to, laundry washingcomplete, laundry drying complete, laundry off balance, microwave fooddefrosted, turn defrosting food in microwave, microwave food ready, ovenpre-heat complete, oven food ready, boil over on cooktop, fire, hotwater ready, and coffee ready. The relevant notification icons canbecome illuminated, such as by flashing or being constantly illuminated,or otherwise visible when appropriate and become un-illuminated orotherwise not visible when appropriate. The clock 10 can further havethe capability of communicating to the user, such as via the display 18,an alert status of the appliance(s) 12, 14, 16 with which the clock 10communicates, and, optionally, the user can acknowledge receipt of thealert status, such as via the display 18. According to one embodiment,the acknowledgement by the user can clear the alert status from theclock 10 and the appliance(s) 12, 14, 16. In this manner, the display 18can function as a user interface that effects communication not only tothe user from the appliance but also from the user to the appliance.

With continued reference to FIG. 3, the clock 10 can optionallyincorporate appliance control capability whereby the user can providecontrol inputs or commands to the appliance(s) 12, 14, 16 through theclock 10, such as via the display 18. Exemplary commands include, butare not limited to, start/stop wash cycle, start/stop drying cycle,start/stop cooking program, decrease heating element power for simmer,execute low heat tumble following drying cycle, decrease microwaveheating power, increase temperature of chill zone in refrigerator, andthe like.

If the clock on the network does not have electronics for functioning asan atomic clock, the clock can be a satellite clock that can receivetime from an atomic clock enabled to speak “TimeCast” protocol. Thus,the clock can display the time given by the atomic clock throughTimeCast.

The clock can be internal to the appliance, as described above, or canbe external to the appliance. When the clock is internal to theappliance, electronics for the clock can be packaged into the applianceduring manufacture of the appliance or can be installed into theappliance as an after-market accessory. The clock as an internalaccessory can have any of the functionalities described above for theexternal clock. The clock can also be “plugged” into an appropriateconnector on the appliance. The connector can provide both power anddata communication.

The clock conventionally associated with the appliance can also functionas an accessory. For example, the clock of the appliance can communicatewith clocks of other appliances, such as for synchronization of theclocks to establish and/or maintain consistent time among all of theappliances. An example of clock synchronization is illustrated in FIG.4. The first appliance 12 broadcasts a message requesting identificationof appliances having clocks. The second appliance 14 responds byinforming the first appliance 12 that the second appliance 14 has aclock and provides an address for the clock. Thus, the first appliance12 has established the appliances that have clocks. In the future, theuser can set the time on the first appliance 12, and the first appliance12 can then broadcast the set time to the appliances that have clocks,such as the second appliance 14. Alternatively, the user can set thetime on the clock of another appliance, which can transmit the set timeto the first appliance 12 and the second appliance 14. As a result ofthis process, the user need only set the time on one of the appliancesas the clocks of the other appliances automatically synchronize with theclock having the set time. Such a configuration can be especiallybeneficial in situations, such as a power outage, where multiple clockson the appliances lose power and, therefore, the time.

Another example of clock synchronization is shown schematically in FIG.5. In this example, the appliance requests the time from anotherappliance. The third appliance 16 broadcasts a message requestingidentification of appliances having clocks. The first appliance 12responds by informing the third appliance 16 that the first appliance 12has a clock and provides an address for the clock. Similarly, the secondappliance 14 responds by informing the third appliance 16 that thesecond appliance 14 has a clock and provides an address for the clock.Thus, the third appliance 16 has established the appliances that haveclocks. The third appliance 16 then communicates with at least one ofthe appliances having a clock, which is shown as the first appliance 12in FIG. 5, and requests the time from the first appliance 12. The firstappliance 12 responds by providing the time to the third appliance 16.Alternatively, the third appliance 16 can request the time from anotherof the appliances, such as the second appliance 14.

The clocks of the appliances can also synchronize by one of theappliances broadcasting the time at periodic intervals. When the clocksare synchronized in this manner, each minute rollover of the time can besynchronized so that there is no discrepancy between the times on theclocks, even while the displayed time is changing.

Another example of an accessory is a cooking aid. The cooking aid can bean active accessory, a sensing accessory, or a combination thereof. Theactive accessory can be programmed by the user or can receive commandsfrom the appliance for performing an action. The sensing accessory caninclude one or more sensors that detects a state of the accessory and/orappliance and communicates the state to the appliance or other componenton the network.

Exemplary active cooking aids include a controlled stirrer 20 and aningredient dispenser 22, which can both be associated with the firstappliance 12 in the form of the oven. As shown in FIG. 6, the controlledstirrer 20 can be coupled to a cooking vessel 24, such as a pot or pan,located on a cooktop 26 of the first appliance 12. Alternatively, thecontrolled stirrer 20 can be coupled to the first appliance 12, such asto the cooktop 26, rather than to the cooking vessel 24. The controlledstirrer 20 includes a stirring mechanism 28, such as an auger, that caninduce movement of material (i.e., food) within the cooking vessel 24,and a mount 30 for coupling the stirring mechanism 28 to the cookingvessel 24 or the first appliance 12. The controlled stirrer 20 has acontroller 32 that can communicate with the cooktop 26 or other part ofthe first appliance 12 for receiving stirring commands. The commands canbe associated with a recipe, such as a recipe stored within the firstappliance 12 or a recipe otherwise visible to the first appliance 12,such as via another component on the network. Alternatively, the usercan program the controlled stirrer 20 according to desired actions or arecipe. The stirring commands can include information such as startstirring, stop stirring, stirring speed, and stirring frequency. In analternative embodiment, the controlled stirrer 20 can be integrated withthe cooking vessel 24. Regardless of the configuration of the controlledstirrer 20, employing the controlled stirrer 20 eliminates or reducesthe need for the user to be present at the second appliance 12 to stirthe material in the cooking vessel 24. The controlled stirrer 20 isespecially beneficial when a recipe requires continuous stirring of thematerial for a relatively long period of time.

Referring now to FIG. 7, the ingredient dispenser 24 can be mounted toor located in the vicinity of the first appliance 12 and can include oneor more compartments 40 configured to store ingredients. Thecompartments 40 couple with corresponding dispensing mechanisms 42configured to transport the ingredients from the compartments 40 to acooking vessel 44, such as a pot or pan. The cooking vessel 44 can beintended for use on the cooktop 26 or inside the first appliance 12. Theingredient dispenser 24 further includes a controller 46 that cancommunicate with the first appliance 12 for receiving commands relatedto dispensing the ingredients. The commands can be associated with arecipe, such as a recipe stored within the first appliance 12 or arecipe otherwise visible to the first appliance 12, such as via anothercomponent on the network. Alternatively, the user can program theingredient dispenser 24 according to desired actions or a recipe. Thecommands related to dispensing the ingredients can include informationsuch as when to add an ingredient and the amount of the ingredient to beadded.

The ingredient dispenser 24 can be provided to the user with theingredients in the compartments 40 (i.e., pre-filled compartments) orwith the compartments 40 in an empty condition whereby the user mustsupply the ingredients to the compartments 40. When the compartments 40are pre-filled, the type and amount of ingredients can correspond to apredetermined recipe. In one embodiment, the ingredient dispenser 24 caninclude replaceable compartments so that the user can insertcompartments 40 that correspond to a desired recipe.

Employing the ingredient dispenser 24 provides several advantages. Forexample, the ingredient dispenser can accurately measure and dispensethe ingredients at the proper time during the preparation of thematerial in the cooking vessel 44, thereby improving the quality of theresulting food. Additionally, the ingredient dispenser 24 eliminates orreduces the need for the user to be present at the first appliance 12for dispensing the ingredients.

Exemplary sensing cooking aids include a sensing cooking vessel 50 and aremovable cooking vessel sensor 52, which can both be associated withthe first appliance 12 in the form of the oven. As shown in FIG. 8, thesensing cooking vessel 50 comprises a cooking vessel 54 and a sensor 56that can detect a condition of the cooking vessel 54. The cooking vessel54 can be any suitable type of cooking vessel, such as a pot or a pan.The sensor 56 can be, for example, a temperature sensor, a timer, acombination temperature sensor/timer, a sound sensor, a humidity sensor,a vision sensor, and a motion detector. The sensor can be integratedwith the cooking vessel 54 or otherwise coupled with the cooking vessel54. The sensor 56 can communicate with the first appliance 12, such aswith the cooktop 26, or other component on the network to communicatethe sensed condition of the cooking vessel 54. For example, the sensedcondition can be boiling, boiling over, simmering, current temperature,boiling time, simmering time, time above a certain temperature, andtemperature as a function of time (i.e., heating curve). The firstappliance 12 can be configured to respond to the sensed condition of thecooking vessel 54, such as by increasing heat, decreasing heat, andincreasing or decreasing time at a certain temperature. The response bythe first appliance 12 can be in accordance with a recipe or withinstructions programmed by the user. The sensing cooking vessel 50thereby provides a means for closed loop temperature control between thecooking vessel 54 and the first appliance 12.

In the case of a vision sensor, the sensor could transmit video toanother device for the consumer. The consumer could then make controlfunction decisions including control adjustments or stirring activation,as the case may be.

The functionality of the sensing cooking vessel 50 can alternatively beaccomplished with the removable cooking vessel sensor 52. Referring nowto FIG. 9, the removable cooking vessel sensor 52 is an accessory thatcan be removably coupled to a conventional cooking vessel 58 andcomprises the sensor 56 described above with respect to the sensingcooking vessel 50. The removable cooking vessel sensor 52 can have anysuitable form, such as a clip, as shown in FIG. 9, that removably clipsonto the cooking vessel 58. Employing the removable cooking vesselsensor 52 eliminates the need for the user to purchase a special cookingvessel having the sensor 56; rather, the removable cooking vessel sensor52 can be used with any cooking vessel as it can effectively add thesensor 56 to any cooking vessel.

The exemplary cooking aids described above, the controlled stirrer 20,the ingredient dispenser 22, the sensing cooking vessel 50, and theremovable cooking vessel sensor 52, can be employed individually or incombination with one another. Each of the cooking aids 20, 22, 50, 52provides a degree of automation to the cooking process, and using morethan one of the cooking aids increases the degree of automation. Whenthe user employs more than one of the cooking aids 20, 22, 50, 52, thecooking aids 20, 22, 50, 52 can optionally communicate with each otherin addition to communicating with the first appliance 12 or othercomponent on the network.

Another example of an accessory is an operation cycle componentconfigured to store and transfer operation cycles for the appliance. Anoperation cycle is a set of commands that the appliance executes foroperation of the appliance. For example, a washing machine can haveseveral wash cycles that depend on the type of fabric being washed or asize of a fabric load. Similarly, an oven can have several cookingcycles that depend on the type of food being cooked and the cookingprocess (e.g., defrosting, baking, self-cleaning). Typically, theappliance when purchased by the user has a set of operation cycles thatcan permanently reside in the appliance as firmware. Referring now toFIG. 10, the operation cycle component 60 can store additional operationcycles not originally provided with the appliance 12 and communicatewith the appliance 12 such that the appliance can implement theadditional operational cycles. The operation cycle stored by theoperation cycle component 60 can also or alternatively include anupdated operation cycle. The operation cycle component 60 can be anytype of component, such as a hardware device that can plug into theappliance 12. In FIG. 10, the operation cycle component 60 is shown as aUSB dongle that can couple with both a personal computer and theappliance 12. The USB connection and communication is just forillustration and is not limiting on the invention. Any other suitableconnector and/or communication method can be used.

With continued reference to FIG. 10, the additional operation cycles canbe uploaded to the operation cycle component 60 in any suitable manner.For example, the operation cycle component 60 having the additionaloperation cycles can be purchased at a retail store 62, or theadditional operation cycles can be uploaded to the operation cyclecomponent 60 at the retail store. Alternatively, the user can downloadthe additional operation cycles via the Internet 64. For example, theuser can download the additional operation cycles through a personalcomputer 66 and then upload the additional operation cycles to theoperation cycle component 60, or the user can wirelessly directlydownload the operation cycles to the operation cycle component 60. Inanother embodiment, the user can develop custom additional operationcycles on the personal computer 66 and upload the custom additionaloperation cycles to the operation cycle component 60. In an alternativeembodiment, the additional operational cycles can be transmittedwirelessly from the personal computer 66 to the appliance 12 withoutusing the operation cycle component 60. The wirelessly transmittedadditional operational cycles can be transmitted to an intermediatestorage in the appliance 12. The cycles can also be authenticated by thesoftware architecture or other methods to ensure that they arecompatible with and appropriate for the appliance.

The operation cycle component 60 can couple with the appliance 12 in anysuitable manner, such as through a direct hardwire connection or awireless connection. Furthermore, the appliance 12 can implement theadditional operation cycles directly from the operation cycle component60, or the additional operation cycles can be transferred from theoperation cycle component 60 to the appliance 12. Referring now to FIG.11, which illustrates a main controller 68 of the appliance 12, theadditional operation cycles can be considered software that can beprovided to the cycle engine. The cycle engine can operate on operationcycle data provided from multiple sources of persistence.

Referring now to FIG. 11, which illustrates a main controller 68 of theappliance 12, additional operation cycles can be provided to a cycleengine 69. The additional operational cycles can be considered as datawhen combined with the cycle engine. The cycle engine 69 differs fromconventional operational cycle execution software. Conventionaloperational cycle execution software is determined wholly from compiledsource code which cannot be easily separated into constituent parts orportions. The cycle engine 69 is software that has two portions. Thefirst portion is data describing a plurality of elements comprising anordered collection of steps, the actions to be taken during each step,and the conditions under which the current step should transition to anext step in the ordered collection of steps.

In one embodiment, the second portion is compiled software which, in aninitial step, reads the data portion and builds a cycle structure inmemory which can execute instructions comprising an operational cyclecorresponding to the description suggested by the data portion. In asubsequent step, the second portion commences execution of the cyclestructure where each step performs some useful action and thentransitions to a different step based on transitional logic separatingthe steps from one another.

In another embodiment, the second portion comprises a compile processstep which reads the data portion and builds the cycle structure inmemory, and further compiled software which can commence execution ofthe cycle structure in memory where each step performs some usefulaction and then transitions to a different step based on transitionallogic separating the steps from one another.

The cycle engine itself can be communicated, as well as be configured tocommunicate with a client to receive and send messages, preferably inaccordance with software architecture as shown in FIG. 14 of theincorporated PCT/US2006/022420, having an enabling identifier and acollection of commands and events which are supported via a collectionof Op (“Operation”) Codes. Preferably, the cycle engine 69 of eitherembodiment, will receive messages from a client allowing for changes tothe cycle structure. Changes to a cycle structure may be, for example,the insertion or deletion of steps, additions or deletions to theactions of each step, or changes to the transitional logic between anytwo given steps. To accomplish such changes, identifiers must beassociated with the components of the cycle structure such that theclient messages can fully specify the exact desired modifications to thecycle structure.

Typical actions in the data portion include, for example, changing thestate of electro-mechanical actuators like relays, valves, and fans, andchanging the state of user interface indicators like LEDs, buzzers,light rings, segmented displays, or graphics on a graphical LCD. Thedevices to which the actions will apply may be represented asidentifiable functions with a known controllable interface. In otherwords, physical devices may be modeled or virtually revealed in the SAby an API (Application Programming Interface”} Id where their controlinterfaces are represented by a collection of Op Codes, each havingassociated parameters. This allows controllable devices or softwarecomponents which control the controllable devices to expose themselvesto the actions of a step as a message, preferably exposing themselvesusing the messaging mechanism of the incorporated PCT/US2006/022420 suchthat location of the control software which can operate on a device orthe control software providing controllable access to the device doesnot need to be known by the cycle engine. With respect to FIG. 14 of theincorporated PCT/US2006/022420, the cycle engine 69 would typicallyreside in the App Logic 59. “Control software” here means any software,algorithm, or logic directly or indirectly associated with theoperational cycle of an appliance. Generally, all logic providesindirect access to the control of a device, but the meaning can extendto include any non-device oriented software participating in theoperational cycle of an appliance.

Using the aforementioned cycle engine architecture, an operational cycleaccessory can be added to the network of an appliance, discover thecycle engine 69, and send it configuration messages to affect itsstructure and ultimately its execution. In this case, the operationalcycle accessory would typically include a combination of software anddata to accomplish the configuration of the cycle engine. Alternately,the aforementioned cycle engine architecture might send a discoverymessage seeking identification of all sources of the data portion (seethe summary of discovery messages below). Sources of the data portionmay be in ROM, Flash, EE Prom, an operational cycle component, and/or anexternal source connected via a network different from the controlnetwork (See FIG. 27). Once the data portion is located and retrieved,the cycle engine can commence modifying its own cycle structureaccording to the data.

In one embodiment, the data portion will be stored in flash memory usingthe process described in the aforementioned second embodiment, and uponreceiving new data from an operational cycle accessory, eitherphysically or virtually by message from a remote client, the cycleengine will compare the received data with the stored dated to create adifference table in a separate memory area. In this way, alterations tothe cycle structure can be made to the initial cycle structure whilepreserving the initial cycle structure for corruption.

When the operation cycle accessory is disconnected from the cycleengine, the data in the difference table associated with that operationcycle accessory may be optionally removed by the cycle engine. This is aform of anti-piracy protection in that the operation cycle accessorymust be present for the additional functionality represented by theaccessory to be available to the appliance.

Optionally, the connection between the appliance and the operation cycleaccessory can include a transfer of data into the difference table or anintermediate table from which the difference table is created orincreased. In this case, additional operation cycles may optionally beretained without the permanent presence of the operational cycleaccessory. It should also be noted that an operation cycle accessory canbe virtual in that the software and data and ability to communicate withthe cycle engine may reside on an external device connected to the cycleengine via at least one network and not physically attached to thecontaining appliance.

It is to be noted that an operational cycle component can have otherelements that are not the aforementioned operation cycles or constituentdata and complied portions. For example, the operational cycle componentcan include software code to configure a cycle engine for communicationand other functions or code to put software architecture into analternate mode for the purpose of diagnostics or changing memory.

Other examples of an accessory include a consumable and a consumablereader. A consumable is an object external to the appliance that can beconsumed or otherwise used during operation of the appliance orfollowing operation of the appliance. The consumable can be consumed bythe appliance or by the user. Examples of consumables include, but arenot limited to, detergents and other wash aids for a laundry applianceand/or dishwasher, fabric items (e.g., clothing), heat and serve meals,frozen side dishes, frozen meals, microwave popcorn, frozen pizza, andfrozen breakfast sandwiches. Characteristics or information, such as anoperating cycle, usage directions, cooking instructions, dosageinformation, and washing/drying instructions, associated with theconsumable can persist, for example, within the consumable itself, inthe packaging for the consumable, or in auxiliary materials, such asuser manuals and tags, provided with the consumable.

The consumable reader is a component that can accept the informationassociated with the consumable and transmit it to the controller of theappliance. The consumable reader can be a device integrated with theappliance or a separate device that can be coupled, either by a hardwireconnection or wireless connection, to the appliance for communicationwith the appliance. Examples of consumable readers include, but are notlimited to, bar code scanners, radio frequency identification (RFID) tagreaders, and magnetic strip readers.

The consumable reader communicates the information associated with theconsumable to the appliance so that the appliance can optimize itsperformance for the consumable. An example of employing the consumableand consumable reader is provided in the schematic illustration of FIG.12. In this example, a food provider 70 determines cooking instructionsfor a consumable 72 in the form of a frozen meal and encodes thepackaging for the consumable 72 with the cooking instructions. The usercan place the consumable 72 in the vicinity of the appliance 12 in theform of an oven, and a consumable reader 74 of the appliance 12communicates the encoded cooking instructions from the consumable 72 tothe appliance 12. The appliance 12 can then execute the cookinginstructions for preparing the frozen meal.

It is contemplated that the consumable will contain informationcorresponding to a preferred operating cycle for the consumable. In thecase of a food item, the information would correspond to a cooking cyclefor the consumable. The consumable can also have the ability to identifythe appliance and provide an appliance-specific operating cycle. Onemanner of implementing this is for the consumable to have operatingcycles corresponding to a particular appliance or class of appliance.The appliance in which the consumable is used identifies and implementsthe relevant operating cycle. Another manner of implementation is forthe consumable to have an identifier and the appliance has stored oraccess to a database or table of operating cycles for differentconsumables. The appliance takes the consumable identifier and looks upthe corresponding operating cycle for the consumable.

The information associated with the consumable can be in any suitableform. In one embodiment, the information can be a communication packetthat can be directly transmitted to the software architecture, therebyeliminating a need for a central storage of consumables data. In anotherembodiment, the information can be a key that can be used to direct theappliance to stored consumables data.

It is within the scope of the invention to utilize the consumableswithout the consumable reader. For example, the consumable can beconfigured to directly communicate with the appliance or other componenton the network without employing an intermediate consumable reader.

The consumables can be supplied by a third-party provider, as in thecase of store-bought frozen meals and wash aids for laundry appliancesand/or dishwashers, or provided by the user. Leftovers and cooked anduncooked prepared foods are examples of consumables that can be providedby the user. The leftovers and the prepared foods can be placed in astorage container encoded with information related to the leftovers andprepared foods. For example, the information can include re-heat orcooking instructions and an expiration date (i.e., throw away date).When the information includes the expiration date, the appliance, suchas the oven or microwave oven, can refuse to re-heat or cook the food ifthe current date is past the expiration date. Optionally, the appliancecan be configured to receive an override command from the user when theuser desires to re-heat or cook the food despite the expiration date.

Any suitable material can be used to encode the information, andexamples include, but are not limited to, plastic wrap, aluminum foil,pots, pans, microwave-safe containers, container lids, and an adhesiveor magnetic strip that can be placed on the storage container. Theinformation can be configured by the person who originally prepared theleftovers and the prepared foods and encoded using any suitable means,such as a personal computer, a magnetic strip writer, and a handheldencoding device. With this configuration, the user can configure theinformation on the consumable as desired.

Along the lines of the consumables and the consumable readers, anotherexample of an accessory is a recipe book and a recipe book scanningwand. The recipe book can contain various recipes having associatedcooking instructions, and the cooking instructions can be extracted bythe recipe book scanning wand. For example, the cooking instructions canbe extracted from text of the recipe book or hidden or visible encoding.The recipe book scanning wand can then communicate, via hardwire orwireless connection, the cooking instructions to the appliance forexecution. In an alternative embodiment, the recipe book can directlycommunicate with the appliance without employing the recipe bookscanning wand.

Another example of an accessory is a commercial laundry creditaccessory. The commercial laundry credit accessory can be any suitabledevice, such as a card with memory and/or a microprocessor (commonlyknown as a “smart card”) and a dongle. The commercial laundry creditaccessory can store laundry operation cycle credits and communicate withthe appliance in the form of a commercial laundry appliance, such as ata public laundry facility, via a direct or wireless connection. When thecommercial laundry credit accessory has sufficient credits, theappliance will operate and deduct credits from the commercial laundrycredit accessory based on the operation of the appliance. Optionally,individual users can purchase the laundry operation cycle credits, orothers can purchase the laundry operation cycle credits for giftingpurposes. In one embodiment, the laundry operation cycle credits can bepurchased at the public laundry facility or remotely, such as via theInternet.

The credit accessory can also be used in combination with the softwarearchitecture to track usage and transferring the usage information to alocal or remote central system. Price changes and other operatingparameters for the laundry can be changed by the credit accessory. Theprice change can be linked to other information accessible through thesoftware architecture, such as energy costs, for example. The creditaccessory can also collect diagnostic information and call for serviceor alert the owner if there are any pending issues via wired orwireless. The smart card can also be used to supply alternate content tothe user interface of the appliance, such as advertisement, for example.

Another example of an accessory is a customized connector that can beused to couple the appliance with another accessory or with anothercomponent on the network. The customized connector can be associatedwith any item, such as a cable or a dongle, that can couple with theappliance, and can be configured to prevent unauthorized, third-partydevices, including generic brand replacement parts, from undesirablycoupling with the appliance and other components on the network. Thus,the connecting item must have the customized connector to couple withthe appliance or other component on the network.

Another group of exemplary accessories relate to energy usage. Forexample, the accessory can be an energy controller and/or energymonitor, hereinafter referred to collectively as the energy controller.The energy controller can be a separate component on the network thatcommunicates with several appliances and other networked components inthe home and also with an energy source, such as an electricity source.The energy controller can monitor the amount of energy used by each ofthe appliances and can distribute energy among the appliances. Thedistribution of energy can result in an efficient usage of energy andcan also manage energy usage, for example, when the energy sourcecurtails the amount of supplied energy. The energy controller can alsocontrol the operation of the appliances so that the operation occursduring non-peak energy usage times, which typically correspond to lowerenergy costs.

The energy controller can be internally configured for communicationwith the appliances, or a separate connection accessory, such as adongle, can be coupled to the energy controller to provide connectivityto the appliances. Similarly, the appliance can be internally configuredfor communication with the energy controller, or a separate connectionaccessory 78, such as a dongle, as illustrated in FIG. 13, can becoupled to the appliance 12 to provide connectivity to the energycontroller. The connection accessory can have the ability to discoverthe type of appliance and provide appropriate modules of the softwarearchitecture for the appliance. In addition, the connection accessorycan have the ability to respond to messages and commands from the energycontroller. The connection accessories can be configured to providewireless communication between the energy controller and the appliances.

The energy controller 78 can be connected to an energy supplier by anysuitable means, such as, wireless, Internet, power lines, etc. With sucha connection, the energy supplier can provide information relevant tothe control of the appliance. The energy supplier can also remotelycontrol the appliance in addition to or in lieu of providinginformation.

Other energy related accessories include a smart breaker, a smartdimmer, and a smart adapter. The smart breaker is described in detail inU.S. Pat. No. 6,988,375, issued Jun. 24, 2006 which is incorporatedherein by reference in its entirety.

The smart dimmer is effectively a replacement for a load switch, such asa light switch, having discrete on/off control and can be used in anycomponent on the network, including lights and ceiling fans. The smartdimmer provides the ability to not only switch power on and off but alsoto vary voltage, such as via triac control or converter/invertercontrol. The smart dimmer communicates with the energy controller, suchas to respond to requests from the energy controller and to notify theenergy controller of energy consumption status. By giving the energycontroller additional control over the component associated with thesmart dimmer, the energy controller has more capability to achievetarget energy consumption without disruption to the user. Furthermore,in the event of an emergency energy curtailment, the energy controllercan communicate with the smart dimmer to dim or shut off the lights orother component associated with the smart dimmer. The smart dimmer canalso have associated sensing capabilities to feedback to the energycontroller measurements of watts and power-factor.

The smart adapter is functionally similar to the smart dimmer but servesas a replacement for a common wall outlet. By replacing the common walloutlet with the smart adapter, which can communicate with the energycontroller in a manner similar to the communication between the smartdimmer and the energy controller, “dumb” components, such as waterheaters, that typically function in off/on modes can be plugged into thesmart adapter and converted for use on the network and for operation atvarying voltages. As a result, the components with the smart adapterscan participate in energy curtailment programs and can communicateenergy usage information to the energy controller.

Other examples of accessories relate to servicing the appliance. In oneembodiment, a remote service center can communicate wirelessly with theappliance in the home. As a result, the remote service center canmonitor the appliance, including low level components of the appliance,either passively or actively, and diagnose failures of the appliance. Anexample of passive monitoring of the appliance is illustrated in FIG.14. In this scenario, the user communicates with the customer servicecenter 80, such as via a telephone call or through the Internet, toinform the customer service center 80 that the appliance 12 in the formof an oven is not functioning properly. In response, the customerservice center 80 communicates with the appliance 12 wirelessly tomonitor the appliance 12 and diagnoses a failure associated with acomponent of the appliance 12, particularly the door latch. Thus,observation over the network enables the remote service center 80 todiagnose the failed component without a service visit to the home. Oncethe diagnosis is completed and the customer has scheduled a servicecall, the remote service center can transmit the data collected from theservice accessory to a local technician service tool, where thetechnician can use both the data analysis and collected operational datato assist in the local service call. The technician may also use thisdata to stock the appropriate parts needed for the service call.

If information not available on the internal network of the appliance isneeded for diagnosis, the remote service center 80 can use the DAQ,which is described in more detail in the aforementioned and incorporatedPCT patent application to retrieve information available in memory ofthe associated appliance componentry for analysis of a problem or forsearching for a problem.

If in addition to passive monitoring, the remote service center 80determines the need to control and test the low level components of theappliance 12, the remote service center 80 can actively monitor theappliance 12. To actively monitor the appliance 12, the remote servicecenter 80 can put the appliance 12 in a development state, which isdescribed in more detail in the aforementioned and incorporated PCTpatent application and priority application. In the development state,the remote service center 80 can communicate with the appliance 12 andactuate the individual components of the appliance, such as heaters,valves, and motors, to facilitate making a diagnosis. The remote servicecenter can either interactively control the appliance components usingthe service accessory as a pass through, or alternately download testscripts to the service accessory for local execution at the location ofthe appliance user. According to one embodiment, for the appliance 12 toenter the development state, the appliance 12 must be in an attendedmode. In the attended mode, a responsible person must be present at theappliance to ensure that the actuation of the individual components ofthe appliance 12 does not harm anyone in the vicinity of the appliance12. The responsible person can be the user of the appliance 12 or anyother person deemed responsible. The presence of the responsible personcan be confirmed in any suitable manner, such as by communicationbetween an identification card of the responsible person and theappliance 12 or by the responsible person actuating a key press on theappliance 12.

As an alternative, the appliance can be monitored and diagnosed by anindividual, such as the user, in the home with the aid of a serviceaccessory rather than employing the remote service center. In thisscenario, an automated service system replaces the remote servicecenter. The service accessory can be any suitable device, such as adongle, configured to communicate, either via a wired connection orwirelessly, with the appliance and with the automated service system.

An example of self-servicing the application using the automated servicesystem and the service accessory is illustrated in FIG. 15. Shown asstep 1, the user couples the service accessory 90 to the appliance 12 inthe form of an oven, and the service accessory 90 automaticallyconfigures to record diagnostic data from the appliance 12. If anappliance failure occurs, the user removes the service accessory 90 fromthe appliance 12 and couples the service accessory 90 to a personalcomputer 92, shown as step 2. Next, the service accessory 90 connects tothe Internet via the personal computer 92, shown as step 3, and uploadsthe diagnostic data associated with the appliance failure to theautomated service system. The automated service system analyzes thediagnostic data and determines an appropriate response. Test scripts canbe transferred or downloaded to the appliance components for localexecution on the machine or they can be executed from a service softwarerunning on the service accessory/key itself. In this mode the serviceaccessory is executing the logic associated with data collection,analysis, and test scripts. Another possible response can be to downloada new appliance component software update that can repair the issue.This new software update can be loaded onto the appliance by the serviceaccessory to provide a solution to the issue, including such informationas operational cycle data. Alternatively, the service accessory can be acoupling mechanism allowing a computing device, such as a cellularphone, a personal computer, and a personal digital assistant, to executelogic associated with data collection, analysis, and test scripts. Oneexample of this operation includes using a service accessory thatcontains a USB memory stick. The customer can remove the serviceaccessory from the appliance and manually walk the accessory over to anypersonal computer and plug the memory stick into a standard USB port.The service accessory can assist the user in connecting to the remoteservice center or to a website that can assist with the serviceincident. This assistance can be provided by launching an applicationfrom the service accessory for use on an interactive device such as apersonal computer. Finally, the service accessory can execute a subsetof the diagnostic logic such as test scripts and data collection,leaving the personal computer or remote service center to execute thedata analysis.

In addition to monitoring data gathered from the appliance components,the service accessory can also gather data from power sensing devices toallow the remote service center to integrate information concerningpower consumption of appliance loads with operational data from theappliance components. This is sometimes necessary because the applianceoften does not have knowledge of its actual electrical consumption andthis information can be used to provide a more accurate diagnosis thanmachine operation data alone.

Other examples of accessories relate to home automation. Home automationsystems are systems with a control center configured to control multipleobjects, such as lights, drapes, blinds, thermostats, audio/videocomponents, and security systems, within a home. Typical control centersare in the form of a monitor, such as a touchpanel monitor, or a remotecontrol with a customized keypad. With the software architecture, theappliance can be integrated with the home automation system. In oneembodiment, the appliance can be added to an existing home automationsystem whereby the appliance can be controlled, monitored, etc. from thecontrol center. The appliance can optionally communicate with thecontrol center via a wireless device coupled to the appliance.Alternatively, the appliance can be used as the control center. Forexample, a kitchen is generally a centralized location in the home, andone of the appliances, such as a refrigerator, in the kitchen caninclude the control center. In this example, the control center can be amonitor integrated into a door of the refrigerator.

By combining the appliance and the home automation system, severalsynergistic features become feasible. For example, when a fire alarm orsmoke detector of the home automation system detects a fire or smoke,the combined appliance/home automation system can take appropriateactions, such as turning off an oven and cooktop, turning off HVACsystems, turning on lights, and shutting off gas supply. In anotherexample, the user can set the combined appliance/home automation systemin a vacation mode. Upon departure and during the vacation, the combinedappliance/home automation system can take appropriate actions, such asshutting off water supply, turning off water heaters, increaserefrigerator temperature, enable alarms, and setup an automatictelephone call to police if the refrigerator door opens. On return, thecombined appliance/home automation system can take appropriate actions,such as turning on water supply, turning on water heaters, decreaserefrigerator temperature, and disable alarms.

As another example, the combined appliance/home automation system canprovide notifications to the user for time management benefits and peaceof mind. Notifications for time management benefits can include, but arenot limited, to fabric/dish washing complete, fabric/dish dryingcomplete, microwave defrost complete, turn food for microwave defrost,oven pre-heat complete, and food cooking complete. Upon receiving thenotification, the user can immediately attend to the correspondingappliance to remove the fabric load, dish load, food, etc. rather thanspending the time to periodically having to check whether the operationcycle is complete and possibly delaying initiation of another operationcycle. Notifications for peace of mind can include, but are not limitedto, refrigerator door ajar, freezer door ajar, water filter operational,oven left on, cooktop left on, basement humidity level satisfactory, airfiltration system functioning, air quality index, boil over on cooktop,and grill flame exceeding limit.

The notifications can be provided to the user on the control system or aremote device that can be used outside the home. Examples of remotedevices include, but are not limited to, a cellular phone, a key fob,and a pager/buzzer. The remote device can be configured with thesoftware architecture for communication with the appliance or othercomponent on the network.

Another example of an accessory is a network binder. The network binderis a device that binds nodes on a wireless network to the network byassigning an identical unique network ID to each node. Binding allowsnodes that are within communication range of each other to be boundtogether to create private networks and separate the nodes from othernodes that are also within communication range but not part of thenetwork. The network binder can be useful when there are multiplenetworks within range of one another, as in a neighborhood or anapartment building. The private network prevents communications frombeing inadvertently transmitted between networks, which would preventunexpected interactions. The network binder of the present applicationcan be a wireless device that is solely used for binding appliances orother components in a relatively short range of the network binder. Forexample, the network binder can have a limited transmission range ofabout three to four feet to ensure that the target appliance or othercomponent becomes bound to the network when the network binder isoperated. An exemplary network binder 100 is illustrated in FIG. 16 andcomprises at least one button 102 that can be depressed when in thevicinity of the appliance 12 or other component to bind the appliance 12or other component to the network. The network binder can optionallyhave the ability to communicate with a personal computer or othercomputing device so that the computing device can also be configured.

Another example of an accessory is a remote user interface. The remoteuser interface is a user interface that can communicate with one or moreappliances and can be positioned remotely from the appliances with whichthe remote user interface communicates. For example, the remote userinterface can be positioned in a central location in the home or can beportable within the home. The remote user interface can provide many, ifnot all, of the functions associated with a traditional user interfaceof the appliance and can include additional functionalities. The remoteuser interface can have any suitable form, such as a monitor, includinga touchpanel monitor 110, as illustrated in FIG. 17. Other examples ofthe remote user interface can include, but are not limited, to a remotekeypad, a phone, a personal computer, a voice recognition device, avoice generation device, a sound generation and recognition device, aremote control, a user interface of a home automation system, a userinterface of a component different from the components of the appliance,a television, a device that plays recorded music, a device that playsrecorded video, and a personal digital assistant. According to oneembodiment, the remote user interface can be employed in addition to thetraditional user interfaces on the appliances associated with the remoteuser interface. Alternatively, the appliances associated with the remoteuser interface do not include a separate user interface that physicallyresides on the appliances. Furthermore, the remote user interface can beused in conjunction with the above-described combination appliance/homeautomation system.

Another example of an accessory is an appliance monitor. The appliancemonitor, which can be a device integrated with or separate from theappliance, monitors and records operational data associated with theappliance. The appliance monitor can monitor one appliance or aplurality of appliances. Optionally, the appliance monitor can include adisplay for displaying an operational status of the appliance and can beintegrated with the remote user interface described above to alsoprovide the ability to issue commands to the appliance. Furthermore, theappliance monitor can optionally be configured to transmit theoperational data associated with the appliance to another device, suchas a personal computing device or an intermediate storage device, suchas a dongle.

In an example illustrated in FIG. 18, the appliance monitor 116 isintegrated into the first appliance 12 in the form of a microwave oven,and the second, third, and fourth appliances 14, 16, 18, along with thefirst appliance 12, communicate with the appliance monitor 116. Inanother example illustrated in FIG. 19, the appliance monitor 116 is aseparate, portable device that communicates with the first, second,third, and fourth appliances 12, 14, 16, 18. The portable appliancemonitor 116 can be carried by the user so that the user is able toobserve the operational status of the appliance at any desired time.

Other examples of accessories relate to servicing the appliances. If theappliance experiences a failure that requires a service person to visitthe appliance in the home, the service person can couple a personalcomputer or other portable computing device to the appliance using asmart cable 120 or a smart wireless connector 122. As shownschematically in FIG. 20, the smart cable 120 hardwires the appliance 12with the portable computing device 124. The smart cable 120 can includespecial, proprietary electronics that enable communication between theappliance 12 and the personal computing device 124. As a result,unauthorized persons who do not have the smart cable 120 cannot couplean unauthorized computing device with the appliance. Referring now toFIG. 21, the smart wireless connector 122 accomplishes the same goal asthe smart cable 120, except that the former provides a wireless ratherthan hardwired connection between the appliance 12 and the portablecomputing device 124. The smart wireless connector 122 can be anysuitable device, such as a proprietary wireless dongle, that establishesa proprietary connection between the appliance 12 and the portablecomputing device 124.

Additional service-related accessories include a central collector 130and a local collector 132, which can implement the same service-relatedfunctions previously described. Referring to FIG. 22, the centralcollector 130 functions similarly to the appliance monitor describedabove in that the central collector 130 communicates with theappliance(s) and monitors and records operational data associated withthe appliance(s). The central collector 130 is illustrated in FIG. 22 asa box mounted to a wall in the home, but the central collector 130 canassume any suitable form and can be located in any suitable location,including on or in the appliance. The central collector 130 cancommunicate with the appliances 12, 14, 16, such as via a wirelessconnection, and the remote service center 80 can also communicate withthe central collector 130. As a result, when an appliance failureoccurs, the user can communicate with the remote service center 80, suchas via telephone, to inform the remote service center 80 of theappliance failure, and the remote service center 80 can communicate withthe central collector 130 to receive and analyze the operational dataassociated with the failed appliance. Furthermore, if the appliancefailure requires a visit from a service person 132, the service person132 can optionally communicate with the central collector 130, such asvia a portable computing device, to receive and analyze the operationaldata associated with the failed appliance. The central collector 130 canalso be employed by the service person 132 for field testing of theappliance. While illustrated external of the appliances, the centralcollector can be located within one of the appliances.

The central collector 130 can also be used for aggregation of customerusage data. The customer usage data can be sold to third parties and canbe used in customer studies to gain insight to customer usage patternsand preferences. As another option, the central collector 130 can beused for benchmarking. The operational data associated with theappliance can be aggregated and compared to benchmarks or used togenerate benchmarks related to appliance performance. When theoperational data is compared to a benchmark, and the comparisonindicates a degradation of appliance performance, the user can bealerted to the decrease in performance.

A derivative of the central collector 130 is a black box recorder. Theblack box recorder can function similarly to the central collector 130but is constructed such that it cannot be destroyed or at least retainsthe operational data associated with the appliance in case of a fire orother event potentially destructive event to the appliance or the home.The operational data can possibly be used by insurance companies andinvestigators to assess the cause and effects of the destructive event.

Referring now to FIG. 23, the local collector 132 functions similarly tothe central collector 130 in that the local collector 132 communicateswith the appliance(s) and monitors and records operational dataassociated with the appliance(s); however, the local collector 132 is aportable device that can removably couple with the appliance(s). Asshown in FIG. 23, where the local collector 132 is illustrated as adongle, the local collector 132 can be coupled with the appliance 12 toreceive the operational data associated with the appliance 12 andremoved from the appliance 12. After removal from the appliance 12, thelocal collector 132 can be coupled with a computing device 134 of theuser, and the operational data can be sent from the computing device134, such as via the Internet, to a remote location, such as the remoteservice center 80 or a remote automation center 136. If the user doesnot have the computing device 134 or an Internet connection, then thelocal collector 132 can be provided to a shipping service 138 fordelivery to the remote location.

The local collector 132 can be implemented using the service accessory90. Either of the local collector 132 or the service accessory 90 can beinterfaced with the electrical system of the appliance and with eitherthe appliance or with a service tool (accessory) to perform enhanceddiagnostics and performance analysis of the appliance. Exemplary useswould be to validate that each output device (when acutated) consumesthe expected electrical consumption, and to realize certain performanceor failure conditions by evaluating information contained in theelectrical bus (example frequency analysis).

Another example of an accessory is an appliance coupler. The appliancecoupler can be any device, such as a cable connector or a device capableof wireless communication, that enables direct communication betweenappliances. As a result, the coupled appliances can communicate witheach other, which can be especially beneficial when the operation of oneappliance affects the operation of another appliance. For example, awashing machine and a dryer can be coupled together by the appliancecoupler, and the operational cycle of the dryer can be selected based onthe operational cycle employed by the washer.

Another example of an accessory is a sales demo accessory. As shown byexample in FIG. 24, the sales demo accessory 140 can be a portabledevice, such as a dongle, that can removably couple with the appliance12 on display at a retail store. The sales demo accessory 140 can storesales demos that can be executed by the appliance 12. The sales demoscan control the appliance 12, highlight certain features of theappliance 12 for the customer, and can be interactive with the customer.Examples of the sales demos include, but are not limited to, displayingpromotions on a user interface, user interface light and sound shows,voice feedback combined with user interface key presses, voice commandand control, video playback combined with user interface key presses,motion sensing, and mechanical system custom demonstrations. When thesoftware architecture enables control of individual components of theappliance 12, the sales demo can take advantage of this capability andcombine the control of the components with external electronics andcustomization, thereby motivating the customer to interact with theappliance 12. The sales demo mode can be implemented by placing theappliance into a development state using the software architecture.

The sales demos can be downloaded to the sales demo accessory 140 from aweb site associated with the manufacturer of the appliance 12 andupdated periodically to reflect current marketing strategies of themanufacturer of the appliance 12. By differentiating the appliance 12from other appliances on display in the retail store, the sales demoscan help improve sales of the appliance 12. The sales demos can becustomized according to the retail store and trade partners of themanufacturer of the appliance 12. Furthermore, by locating the salesdemos on the sales demo accessory 140, code for sales demos that wouldtraditionally reside on the appliance 12 can be removed from theappliance 12, thereby reducing development time and cost of theappliance 12.

Another example of an accessory is a cellular phone, which can be usedfor communication with the appliance 12. In general, today's cellularphones have several integrated technologies, including networkingcapabilities (Including Bluetooth), Internet connection capabilities,color user interfaces, premium sound, voice recognition capabilities forautomatic dialing, and tactile feedback (e.g., vibration), and theseintegrated technologies can be utilized in conjunction with theappliance 12. Referring to FIG. 25, the cellular phone 150 cancommunicate with the appliance 12 via Bluetooth or an externalconnector, such as a USB connector. The cellular phone 150 can alsocommunicate via the Internet. Thus, the cellular phone 150 can downloadinformation from the Internet and communicate the downloaded informationto the appliance 12 and, conversely, receive information from theappliance 12 and upload the information to the Internet. The informationcan be any type of information related to the appliance 12, such asapplications, custom tests, custom audio, diagnostic data, and customerdata.

Examples of using the cellular phone include, but are not limited to,remote diagnostics and service, interactive audio, voice control, andenhanced user interface. For remote diagnostics and service, thecellular phone discovers the appliance and downloads diagnostic testsfrom the Internet. The cellular phone can locally execute the diagnostictests through the software architecture and Bluetooth (or othercommunication means). After the diagnostic tests are complete, thecellular phone can upload testing results to the Internet for diagnosis.For interactive audio, the cellular phone discovers the appliance anddownloads custom audio files from the Internet. The cellular phone canregister with the appliance for key status events through the softwarearchitecture and Bluetooth (or other communication means). When the keyevents occur on the appliance, the cellular phone can automatically playthe appropriate audio file to provide enhanced feedback. For voicecontrol, the user can input voice commands into the cellular phone, andthe cellular phone can convert the voice command to a command for thesoftware architecture and transmit the command over Bluetooth (or othercommunication means). Finally, for the enhanced user interface, a userinterface application, which can be downloaded from the Internet, can beexecuted on the cellular phone. The user interface application can takeadvantage of the color user interface, the premium sound, and thetactile feedback on the cellular phone. The control of the appliance 12via the enhanced user interface and feedback from the appliance 12 tothe enhanced user interface can occur locally through the softwarearchitecture and Bluetooth (or other communication means).

Another example of an accessory is an audio communication accessory. Theaudio communication accessory is a device that communicates with theappliance or other component on the network having a traditionallyvisual user interface and adds audio capabilities to the user interface.The audio communication accessory can also be used with any appliancesor other component on the network that does not have a user interface.By incorporating the audio communication accessory, the appliance orother component on the network can audibly communicate informationrelated to the appliance or other component to the user, and,optionally, the user can audibly communicate commands and the like tothe appliance or other component through the audio communicationaccessory. Audible communication can be especially beneficial to usershaving a physical disability, such as blindness or mobility issues whereit is difficult for the user to move within visual range of theappliance or other component. The audible communication can be voice(i.e., speaking) or a variety of sounds, such as beeping, alarms, Morsecode, songs, etc.

Referring to FIG. 26, the audio communication accessory 160 can bedirectly mounted to the appliance 12, 14, as shown at 160A or can beseparate or remote from the appliance 12, 14 as shown at 160B. In thelatter case, the remote audio communication accessory 160B can belocated in the home at a convenient location for the user. In oneembodiment, the audio communication accessory 160A mounted to theappliance 12, 14 can communicate with the remote audio communicationaccessory 160B so that the audible information is communicated at morethan one location. It is also contemplated that the audio communicationaccessory 160 can communicate with other audio devices, such as atelephone, a stereo system, a clock radio, and a cellular phone, so thatthe information can be communicated audibly through the audio device andincrease the likelihood that the user will hear the information.

Examples of the information communicated by the audio communicationaccessory to the user can include, but are not limited to, notificationsconcerning an operational status of the appliance or other component,such as fireplace on, security system activated, carbon monoxide alarmactivated, appliance door open, temperature limits exceeded, leakage,filter requires changing, end of operation cycle, cooktop burner on,oven pre-heat complete, fabric/dish washing complete, water temperature,circuit breaker blown, energy usage status, and energy usage exceedspreprogrammed limit. Examples of the information communicated from theuser to the audio communication accessory can include, but are notlimited to, commands concerning an operational status of the applianceor other component, such as call or otherwise contact emergencypersonnel, turn on outdoor spa, turn on outdoor sprinkler system, extenddryer operation cycle, and initiate operation cycle.

Other examples of utilizing the audio communication accessory follow. Inone embodiment, the audio communication accessory can be used as anevent calendar where the user can record an event, such as a reminder totake medicine, and the audio communication accessory can play thereminder at the appropriate time. As another example, the audiocommunication accessory can communicate with a source of weatherinformation, such as via the Internet, and notify the user of weatherconditions on demand or at preprogrammed times. It is also contemplatedthat the audio communication accessory can be used in conjunction withtracking devices to locate items in the home. For example, a set of keyscan be equipped with the tracking device, and the audio communicationaccessory can communicate to the user the location of keys when the usercannot find the keys. The audio communication accessory can also beemployed as an intercom system where multiple users can communicate withone another through the audio communication accessory. In this scenario,the users can each have the audio communication accessory, or the singleaudio communication accessory can interface with another device toenable two-way communication. In another embodiment, the audiocommunication accessory can be used to place the appliances or othercomponents on the network in a “sleep mode,” which can include, forexample, shutting off lights, lower heating temperature, and activatingthe security system, when the user provides a sleep mode command as theuser is going to bed. As another example, the audio communicationaccessory can be used in conjunction with the sales demo accessorydescribed above to audibly enhance the sales demos for the appliance.The customer could effectively talk to the appliance and vice-versa,thereby improving the customer interaction with the appliance at theretail store. It is also contemplated that the audio communicationaccessory can be used in conjunction with an outdoor audio system and/oroutdoor camera whereby the user can audibly communicate with a personwho has activated a doorbell and/or view, such as via a display on acellular phone, images of the person who has activated the doorbell. Asanother example, the audio communication accessory can communicate witha computing device or telephone system and notify the user when the userhas received new electronic mail messages and voice mail messages.

The audio communication accessory can also be used to implement anaudible use and care guide associated with the appliance. The audibleuse and care guide can be considered a replacement or addition to aconventional user manual that a user must read. Listening to the audibleuser and care guide can be more convenient, more efficient, and moreeasily understood than reading the conventional user manual. The audibleuse and care guide can include content traditionally included in theconventional user manual, such as explanations of the operational cyclesand/or features of the appliance, troubleshooting information, andrecommendations for care of different types of items used in theappliance (e.g., laundry, dishes, foods). As an improvement, the audibleuse and care guide can be configured to communicate information relatedto operation cycles selected in real-time by the user. Thus, as theoperation cycle is being selected by the user, the audible use and careguide can inform the user, for example, how to use the operation cycle,what the operation cycle is meant for, what options are available forthe operation cycle, and steps for programming the operation cycle.

The audible use and care guide can be activated prior to using theappliance for the first time or at any time the user requiresassistance. In one embodiment, the audible use and care guide can bealways accessible and activated by the user actuating a button on theappliance or voice activation via the audio communication accessory. Theuser can optionally interact with the audible use and care guide, suchas by asking questions or instructing the audible use and care guide toskip information not needed by the user. According to one embodiment,the audible use and care guide can implement multiple, selectable modesfor various use scenarios, such as whether the appliance is on the floorof a retail store as a sales demo, for a new appliance in the home, fora new user, or for an experienced user. The amount of information andlevel of detail in the information provided to the user can depend onthe experience of the user. The audible use and care guide can bedisabled if it becomes annoying or can be reconfigured.

The audio communication accessory can optionally include tactilefeedback, such as vibration, which can be especially useful for usershaving a hearing disability. The tactile feedback can be used inconjunction with or as an alternative to the audio communication. Theuser can wear or carry a portable device that provides the tactilefeedback.

Regardless of the type of accessory, the software architecture can beconfigured such that the accessory must present electronic credentials(i.e., authentication) before communicating with the appliance.Requiring the electronic credentials prevents unauthorized communicationbetween the accessory and the appliance, thereby avoiding undesirablecontrol of the appliance by the accessory. The security techniques ofthe incorporated International Patent Application No. PCT/US2006/022420work well for the software architecture, including a firewall. Otherpossible authentication mechanisms can be used to gain access to thefirewall. These can include a hardware signal, a sequence of messages, ahandshaking algorithm, or a standard encryption algorithm for example.Any standard authentication method can be used to gain access to thefirewall, as long as it is possible to verify that a client or accessoryis authorized to gain access.

In addition, the disclosed three basic levels of access to the firewall(access, deny, and temporary access) can be expanded as necessary toallow different levels of access to different clients. These accesslevels each have a unique authentication (such as a unique password) andcan be associated with different user roles such as a servicetechnician, factory tester, developer, or consumer. Different levels ofaccess allow different sets of commands to be executed by the client.These levels can be temporary and time bound or permanent onceauthentication is successfully completed.

The implementation of the firewall can vary as needed. The disclosedimplementation uses a table of protected commands to validate againstclients. Any number of data structures can be used to validate a userwith the allowed commands for an access level of the firewall. In theend, a firewall must only allow access to commands to the appropriateclients that have successfully been authenticated.

FIG. 27 illustrates an appliance 1000 connected to external clients1002, 1004 and a second appliance 1006 by a plurality of networks. Afirst network 1030 comprises a first internal client 1010, a secondinternal client 1012 and the external client 1002. A second network 1050comprises the external client 1004. And a third network 1052 comprisesthe second appliance 1006. Each client is characterized as a node on therespective network. Local clients are clients that communicate withnodes on the same network. Remote clients are clients not directlycoupled to the same network as the node to which they are communicating.In this embodiment, external client 1004 would be a remote client of thenodes on the first network 1030.

Each client node 1002, 1004, 1010, 1012 comprises a softwarearchitecture driver (SA driver) 1016 for exchanging messages with anynode having a software architecture (SA) 1018 thereon. The nodes on anygiven network are in operable communication with the other nodes in thatnetwork and are optionally in communication with the nodes present onother networks.

The appliance 1000 further comprises at least one node 1020 having theSA thereon. The second appliance 1006 will also likely have a node withthe SA on it, and may have one or more clients as well. The firstnetwork 1030 also comprises the node 1020.

Couplers 1040, 1042 are special devices that connect to the applianceand/or to a network and/or to two or more networks and communicatetherebetween. Each coupler can comprise all the functionality of a node,and each node can comprise all of the functionality of a coupler. Inthis embodiment, the coupler 1040 couples the second network 1050 to thethird network 1052, and can function as a node on each network. Thecoupler 1042 couples the second network 1050 to the first network 1030.It could also be considered as coupled to the appliance 1000.

Either of the couplers 1040, 1042 can propagate discovery messagesissued by the SA or an SA driver across the networks in order to enablethe SA and SA drivers or their coupled arbitrary software components todevelop references to identifiers of functionality for the differentnodes. Each coupler 1040, 1042 can have a routing table stored in amemory for enabling communication between nodes on different networks.The memory can also store identifiers identifying the functionality ofeach node. The identifiers can be linked to the routing information heldwithin the routing tables so that when a message comprising anidentifier is sent to either of the couplers 1040, 1042, the couplerreceiving the message can send the message to the appropriate next node.

Each node can comprise a unique combination of software elements. Thesoftware elements on any given node include at least one of the SA andan SA driver. The SA driver enables a node to communicate with the SA.The SA inherently includes an SA driver or a variant of the SA Driver.Each node comprising the SA can communicate with other nodes comprisingthe SA. However, a node can have both the SA and separate SA driverthereon. Each node must also include a suitable communication protocolor communication protocol driver for the respective network type towhich it is coupled. An exemplary protocol is the WIDE network protocol1062, a proprietary appliance network protocol utilized by WhirlpoolCorporation. For a client not having WIDE network protocol that needs tocommunicate WIDE messages (e.g., external client 1004), a WIDE driver1064 can be used. A port driver 1072 couples the external client 1004 tothe network 1050.

Each node can also comprise an arbitrary software component 1060. Thecouplers 1040, 1042, for example, may not. The SA driver 1016 is asoftware element configured to allow an arbitrary software component tocommunicate with the SA 1018 over at least one network. An arbitrarysoftware component is any software component or subcomponent thatperforms a useful function. Examples include, but are not limited to, acommunication driver, an application, a user interface, a controlalgorithm, message routing, a control for an operational cycle, messagehandling, data storage, data transformation, data referencing, andsoftware that instructs other software. The SA driver 1016 can receiveand at least partially interpret messages from the SA and/or fromanother SA driver, which are specified as feedback events. In someinstances, the SA driver 1016 can also send command messages to the SA1018. In this respect, the external clients 1002, 1004 can have fullcapability act as an accessory to communicate with and to enhance oralter the operation of the appliance.

It will be understood that any or all of the external clients 1002,1004, the couplers 1040, 1042, and the internal clients 1010, 1012 canbe physical devices that have a processor, a memory, software,circuitry, and some source of power. In the general sense, they arecoupled to transmission media and are preferably configured to takeinformation from the memory and with the processor and the circuitry,produce a signal representing that information in the transmissionmedia. When the information includes an identifier in memory, the nodeor client is discoverable by other nodes connected via the transmissionmedia.

Discovery is a process by which a first node in communication with atleast one coupled network sends discovery messages to the network ornetworks. Discovery messages generally comprise at least some queryinformation specifying what the sender of the discovery message seeks.The information sought can be information such as another node, anappliance, a client, an arbitrary software component, a devicecomprising a node, a coupler, or one or more of a plurality ofidentifiable software elements on any node.

A discovery confirmation message is a reply message sent to the senderof a discovery message. Discovery reply messages typically compriseconfirmation information and identification information. Theconfirmation information is an acknowledgment in the form of a positiveor a negative response. The identification information is informationenabling the sender to send subsequent messages to that which has beendiscovered. The identification information could be raw routinginformation or could be an identifier which could be used to pull rawrouting information out of a routing table. Further the identificationinformation could be an identifier used to get raw routing informationfrom a routing table and other functional identification information outof a routing table. With the ability to create routing tables either bythe method of propagated discovery or by a combination of propagateddiscovery and manual or semi-manual configuration, clients can establishuseful communications with other communicating nodes and can rely on thepropagated message and the routing table to enable the usefulcommunications without the arbitrary software components of the clientsto have knowledge of the routing information required to enable theuseful communication.

Where more than one network is connected by a smart coupler, such ascouplers 1040, 1042, a message received by the smart coupler from onenetwork can be propagated and sent to the second network. The smartcoupler may create a second separate message with the same informationcompatible for a second network, but together, the first and the secondmessages are considered a single propagated message, even though theymay be literally two messages. A propagated discovery message, then, isa discovery message that is propagated to a receiver. A coupler may beconfigured to inspect propagated messages to prevent propagation of acircular message, i.e, a sent message that is also received by thesender on a second network to which the sender is coupled. At least thesmart coupler 1042 may hold a routing table constructed from a pluralityof Discovery Confirmation Messages. In one embodiment, the routing tableholds identifiers from other nodes with each identifiers routinginformation. In a second embodiment, the routing table holds identifiersfrom other nodes with each identifier's routing information and with anew identifier that will be used to represent the identifiers from othernodes. The new identifier can be considered a proxy identifier.

See, for example, FIG. 28 illustrating a system where resources in anappliance can be monitored, managed, or changed as in the energycontroller accessory of FIG. 13. A likely scenario has a coupler 2000connected to an appliance 2002 by a network 2004. The coupler 2000 alsoconnects to a coupler 2006 via network 2008 that may be a different typeof network from network 2004. Coupler 2006 connects to a source 2010 ofinformation about resources used or generated by the appliance 2002 by athird network 2012 that may be a different type of network from eithernetwork 2004 or network 2008. Assume that the source 2010 wants to sendinformation about the resource to the appliance 2002. The inventionenables a node in the source 2010 on network 2012 to communicate with asecond node, having SA for example, which may be among several on theappliance 2002. We assume that the source 2010 has at least anappropriate communication driver, or one of the couplers has software totranslate any message from the source to the communication protocols ofthe incorporated PCT/US2006/022420, for example.

In this scenario, the source 2010 sends a discovery message over thenetwork 2012 seeking any consumer of resources to which the source wantsto send information. The coupler 2006 receives the discovery message,translates the message, if necessary, and propagates the discoverymessage to the next nodes over the network 2008, including coupler 2000.Coupler 2000 receives the discovery message, translates the message, ifnecessary, and propagates the discovery message to the next nodes overthe network, including the appliance 2002. The relevant nodes in theappliance 2002 evaluate the message and determine a discovery replymessage, and send respective replies. Here, we assume at least one replyis positive.

The discovery reply message is received by the coupler 2000, whichpopulates its routing table and sends it to the coupler 2006, whichpopulates its routing table and sends it to the source 2010 in accordwith the foregoing process. Each node retains the relevant identifiersso that subsequent message can be communicated without repeating thediscovery sequence. As well, those nodes with memory, such as thecouplers, can be configured to save messages.

With this structure, a source of information about a resource such aselectricity, hot water, gray water, gas, water, replaceable parts, orother consumables, can request a change in the operation of theappliance based on the information. For example, if an electric utilityis facing a brownout, a source of information about the electricity canrequest that an electric dryer not commence an operation for a period oftime. Similarly, a source of consumables, such as filters or spareparts, can ascertain from an appliance the status of the consumable andsend information about the timing and availability of replacement.

FIG. 29 illustrates the transfer of an operation cycle accessory betweentwo appliances, Appliance 1 and Appliance 2. A removably coupledoperational cycle accessory 3 has, as part of its data portion, datawhich is associated with an identifier of the appliance. In this way,when the cycle engine seeks data, it can include in its request anidentifier which will determine the correspondence of the data retrievedfrom the data portion table for the identifier. With this capability,the operational cycle accessory 3 can be removably coupled with morethan one appliance and is operable with as many appliances at the dataportion table has identification support for.

Likewise, when an arbitrary software component configures the cycleengine through communications, the arbitrary software component canfirst interrogate, through useful communications, the appliance toascertain its identification whereby that identification is used withthe data portion table to retrieve the appropriate data about the cyclestructure to be built. The arbitrary software component can then sendmessages to the API of the cycle engine to build the appropriate cycledata structure for the appliance.

FIG. 30 illustrates communications controlling the operation of anappliance. Here, message (1) between the data portion and the cycleengine enables the cycle engine to discover data related to the cyclestructure to be created. The cycle engine proceeds to build the cyclestructure at (2). Optionally all messages can be routed through anembedded virtual router at (3).

Alternatively, any client having an arbitrary software component canfind or discover data about the cycle structure at (4). Then, thearbitrary software component can build a cycle structure in conjunctionwith the cycle engine, configured to receive configuration messages asat (5). As before, all messages can be optionally routed through anembedded virtual router at (6).

Further explanation of the consumable reader accessory is found in FIG.31. Here, a consumable reader 300 can be or be in communication with asmart coupler. The consumable reader enables communication ofinformation 304 associated or related to a consumable 316 to any of thefunctional components of an appliance 310 or to another accessory 312such as an operation cycles accessory as shown in FIG. 11. Theconsumable reader 300 is also preferably configured to receive feedbackfrom the appliance or accessory.

Information 304 associated or related to a consumable can include dataabout the consumable itself, the data portion of a cycle structure, dataabout a response to a query message from the appliance or otheraccessory, commands associated with an operating cycle, parameters of anoperating cycle such as personal preferences of a user (e.g., donenessor crispiness preferences) or environmental parameters (e.g., altitude),and data about the appliance, accessories or components thereof. Theinformation 304 can also include the quantity of consumable pieces,quantity by volume or by weight, date of manufacture, manufacturer, dataabout its transit from manufacture, distributor, market, and consumer,data about the temperature during transit, nutritional information likecalories, fat grams, % daily allowance of essential vitamins andminerals, a list of medical conditions under which a consumable shouldnot be consumed, data about the relationship between the consumable andknown diets, known medical conditions, and known reactions to knownmedications, and the like. The information 304 can further includeappliance or component identifier data in accord with the messagingprotocol of the software architecture.

The information 304 can be stored in a memory within a node internal tothe appliance or within the consumable reader itself, or to removablycoupled memory within the consumable reader or to a surface onconsumable holder 314. A consumable holder can be an item such as a bag,a box, a carton, a bottle, a can, a bowl, a dish, a plate, or any otherrigid or semi-rigid body suitable to contain a substance. Theinformation 304 can also be stored in a removably coupled articlecomprising memory attached to a surface of the consumable holder or tothe consumable 316 itself. The latter would be a consumable enabled tostore retrievable information, e.g., food with information directlyetched into the food using edible ink. The information 304 can also bestored in a consumable data pod 318 which is article comprising memoryenabled to store retrievable information about a consumable. Preferably,the consumable data pod 318 is consumed by the process also operating onthe consumable without degradation to the consumable or to the overallobjective of the relevant cycle of operation.

In one embodiment, the appliance 310 or accessory 312 detects thecoupling of the consumable reader 300, queries the consumable reader forthe information 304, and creates an appropriate cycle data structureaccording to FIG. 11.

In a second embodiment, the consumables reader 300 is given or infers astart command by which it selectively retrieves data about an operatingcycle, changes the mode of a software operating layer of the appliance,and commands the alternate software layer of the appliance according tothe information to retrieve data about an operating cycle.Alternatively, the consumables reader 300 retrieves data about anoperating cycle and establishes communication with the appliance 310 oraccessory 312 and creates a cycle data structure. Regarding thealternative, the cycle data structure can be created in the memory ofthe consumables reader 300; or, the consumables reader 300 comprises anarbitrary software component 322 of an accessory which creates the cycledata structure by communication with the API of the cycle engine, using,for example a virtual router and also using discovery messages toestablish a reference to the cycle engine's API through the virtualrouter.

In a third embodiment, the appliance 310 or accessory 312 selectivelydetects the coupling of the consumable reader 300, which is given orinfers a start command. Upon the selected event, the cycle of operationof the appliance will be in communication with the information 304. Thisdirect communication with the information is facilitated by theconsumable reader acting as a smart coupler, or by memory within a nodein communication with an executing operation cycle previously populatedby the consumable reader acting as a smart coupler.

Further explanation of message binding may be helpful with respect tothe incorporated disclosure of International Patent Application No.PCT/US2006/022420. The software architecture preferably can support andpromote both asynchronous and synchronous data collection. Asynchronousmemory polling, for example, is available in the Core API (API ID=1).There are at least two available embodiments of synchronous datacollection.

Understanding the invention related to synchronous data collection ishelped by an understanding of the concept of bounded updates. Boundedupdates are events that are grouped together as a snapshot of theappliance state taken during the same scan of the host microprocessor'sMain( ) loop execution. The appliance control main loop will allow foran iterative update of feedback variables that are registered with theDAQ API (e.g., every 25 ms). Each registered variable is monitored andonly those that change value according to their memory monitor changeoperator are broadcast as updates to the client. When updates are in theprocess of being broadcast, no new updates are allowed in order topreserve the snapshot in time.

In the first embodiment, a snapshot is communicated to the client usingthe MMP flag in Byte 2 of the software architecture 10 header as shownin the application protocol 28 in FIG. 4 of International PatentApplication No. PCT/US2006/022420. While the MMP of 28 is true, moremessages are pending for the snapshot. When MMP is false, the currentmessage is the last message in the snapshot. Therefore, if the firstmessage of a snapshot is the only message in that snapshot, MMP will befalse.

The example in FIG. 9 of International Patent Application No.PCT/US2006/022420 illustrates a bounded command (Cycle+Temperature+MMP)with acknowledgements, followed by two consecutive bounded updates.Where bounded refers to elements of protocol which indicate to thereceiver that more messages are coming from the source and that dataprocessing by the application logic of the receiving component should bedelayed until the bounding indicators of the protocol within the packetstructure 28 (MMP bit 7) indicate a complete transaction at which timedata processing by the application logic is permitted. The boundedcommand is shown by reference numeral 42 and the two consecutive boundedupdates are shown by reference numbers 44 and 46, respectively. Noticethat updates do not begin until bounded command execution is complete,providing the client the ability to filter away transient feedback data.Bounded commands are provided by the same mechanism, MMP found in 28, asbounded updates in order to provide applications a greater level ofcontrol.

The example of FIG. 9 in International Patent Application No.PCT/US2006/022420 is conceptual. The actual mechanism is MMP found in28. However for illustrative purpose, the bounded command begins with aninitial “begin” command initiator (MMP set) and includes commands to seta washer cycle to wash, a recipe status to ready, a water temperature tomedium, again a recipe status to ready, and finally a cycle startindicator, followed by a command terminator (MMP unset). It can be notedthat, in FIG. 9, updates (such as by eventing) are disabled to preventupdates from happening before the bounded command is complete. Inaddition, a “process command” indicator is shown periodically throughoutthe bounded command processing in the appliance 12 to illustrate theportions of the command issued from the client 16 through the internalcommunications network 14 are processed.

In the bounded updates 44, the updates are once again enabled (sincethey were disabled at the beginning of the bounded command 42) to allowthe appliance 12 to report its status to the client 16. In the exampleshown in bounded updates 44, the acknowledgment state is shown to ready,the cycle is reported as wash, the state is reported as running, thebasket is reported as fill, the pump is reported as on, and thetemperature is reported as medium. Again, beginning and terminatingindicators enclose the bounded update 44. These beginning andterminating indicators can be reported by use of the flag, MMP, in theapplication packet structure 28 as discussed in FIG. 4 of InternationalPatent Application No. PCT/US2006/022420 or another method which wouldbe apparent to one skilled in the art of network protocol.

In the bounded update 46, the basket is reported as agitate, the pump isreported as off and the motor is reported as on. Again, beginning andterminating indicators (MMP) enclose the bounded update 46. Without thebeginning and terminating indicators (MMP), the client cannot deduce arelationship between the updates from the appliance. However, withbeginning and terminating indicators (MMP), the client can deduce arelationship between the events.

The second embodiment of synchronous data collection is shown in FIG.32. Generally, a node comprises at least a micro-processor, a memory,software, and circuitry coupled to a transmission media where the nodeis configured to take information from the memory of the micro-processorand, with the circuitry, produce a signal representing that informationonto a transmission media. Two nodes in communication with each othercould be two micro-processors on a single printed circuit boardconnected by a serial communications or two computers connected via theinternet.

FIG. 32 shows an eventing software architecture for communicationsbetween one node, event source 200, and a second node, event observer202. The software architecture contemplates the event source sending amessage to the event observer about the event. Rather than sending asingle message, however, the event source 200 can use a begin eventgroup message 204 and an end event group message 206 to create an eventgroup 208 from a series of individual event messages 210. An advantageof sending separate messages in this technique is that it moreefficiently uses the messaging architecture in rapidly changing statesof an appliance and minimizes the number of uniquely identified messagesneeded to express the state of an appliance. Without the begin and endevent group messages, the event observer 202 cannot deduce arelationship between event messages 1, 2, through N. However, with thebegin and end event group messages, the event observer 202 can deduce arelationship between the events.

This technique can also be used to batch commands, as shown in FIG. 33.It is conventional for a command source 220 to send a complete commandwithin one complete message to a command executor 222. The invention,however, contemplates using multiple messages to convey the elements ofa command so that a command can be modular and can be composed bycommand elements. For this to work, the command executor 222 needs toknow when to execute the command comprised of multiple command elements,each of which were sent as an independent single command message. Theinvention provides a solution by providing a begin command group message224 and an end command group message 226, which inform the commandexecutor 222 as to the which command elements belong together for thepurpose of executing a plurality of command elements as a singleaggregated command.

FIG. 33 shows how the command source 220, using a begin command groupmessage 224 and an end command group message 226 bounding a series ifindependent command messages 228 can create a command group 230. Withouta begin command group message 224 and an end command group message 226,the command executor 222 cannot deduce a relationship between commandmessage 1, 2, through N. However, with the begin command group message224 and the end command group message 226, the command executor 222 candeduce a relationship between the command messages 228. In messageaggregation, whether data collection or batched commands, the MMP flagcan be used to identify the beginning and ending of the message group.

While the invention has been specifically described in connection withcertain specific embodiments thereof, it is to be understood that thisis by way of illustration and not of limitation, and the scope of theappended claims should be construed as broadly as the prior art willpermit.

1. An appliance, configured to perform a cycle of operation to completea physical operation on an article, comprising: a communication networkhaving a plurality of interconnected nodes configured to communicateacross the communication network; a plurality of components, eachcomponent associated with at least one of the plurality of nodes; asoftware architecture having a plurality of software elements andconfigured to generate a plurality of messages on the communicationnetwork; and a service accessory disposed and configured to communicatewith the software architecture for monitoring at least one of theplurality of components, wherein at least one of the software elementsresides in each of the components and is configured to enabletransmission of at least one of the plurality of messages among thecomponents and between the accessory and the at least one of theplurality of components.
 2. The appliance of claim 1 wherein the serviceaccessory is configured to communicate with a remote service center sothat the remote service center can be placed in communication with theservice accessory to diagnose a component failure.
 3. The appliance ofclaim 2 wherein the remote service center can assume control of the atleast one of the plurality of components by way of the softwarearchitecture.
 4. The appliance of claim 1 wherein one of the softwarearchitecture and the service accessory stores data representative of afailure of a component.
 5. The appliance of claim 4 wherein the serviceaccessory is configured to communicate with a remote service center sothat the remote service center can be placed in communication with theservice accessory to retrieve the data.
 6. The appliance of claim 5wherein the service accessory is configured to communicate with anautomated service system that retrieves the data from the serviceaccessory.
 7. The appliance of claim 1 wherein the service accessory isa coupling mechanism for connecting the appliance to one of a computingdevice, a cellular phone, a personal computer, and personal digitalassistant.
 8. The appliance of claim 1 wherein the service accessory isa removable service module configured to store data representative of afailure of a component, and to connect to and upload the data to aremote client.
 9. The appliance of claim 8 wherein the service module isconfigured to store and communicate to the software architecture testingscripts related to the component failure.
 10. The appliance of claim 1wherein the service key comprises a central collector configured tocommunicate with the plurality of components and monitor and recordoperational data associated with the plurality of components.
 11. Theappliance of claim 10 wherein the central collector is disposed withinthe appliance.
 12. The appliance of claim 1 wherein the service keycomprises a black box recorder constructed to survive a catastrophicevent.
 13. The appliance of claim 1 wherein the service key isinterfaced with the electrical system of the appliance to monitor andrecord data related to power consumption by the plurality of components.14. A method of remotely servicing the appliance of claim 5 comprising:calling a remote service center; advising the remote service center ofmalfunction in the appliance; establishing communication between theremote service center and the service accessory; downloading data fromthe service accessory; analyzing the data to diagnose a componentfailure; and communicating a response to the user.
 15. A networkcomprising: an appliance, configured to perform a cycle of operation tocomplete a physical domestic operation on an article, including: acommunication network having a plurality of interconnected nodesconfigured to communicate across the communication network; a pluralityof components, each component associated with at least one of theplurality of nodes; a software architecture having a plurality ofsoftware elements and configured to generate a plurality of messages onthe communication network; and a remote service center configured tocommunicate with the software architecture for monitoring at least oneof the plurality of components, wherein at least one of the softwareelements resides in each of the components and is configured to enabletransmission of at least one of the plurality of messages among thecomponents and between the remote service center and the at least one ofthe plurality of components.
 16. The network of claim 15 wherein theremote service center can assume control of the at least one of theplurality of components by way of the software architecture.
 17. Aservice key accessory for an appliance having a communication networkwith a plurality of interconnected nodes configured to communicateacross the communication network and a plurality of components, eachcomponent associated with at least one of the plurality of nodes,characterized by: means to communicate and exchange data with thecommunication network of the appliance; and memory for storing dataretrieved from the appliance.
 18. The service key of claim 17 furthercomprising a service logic configured to assume control of the appliancewhen the service key is in communication with the communication networkof the appliance.
 19. The service key of claim 17 further comprisingmeans to communicate with a network external to the appliance.
 20. Theservice key of claim 19 wherein the external network comprises one of apersonal computer, the internet, and a telephone network.
 21. Theservice key of claim 17 wherein the service key can use a special modeof the appliance to take control of appliance components in order toremotely or locally execute diagnostic tests.